namespace ext.menu
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>Adds a menu item that contains a checkbox by default, but can also be part of a radio group.</summary>
	/// <definedin>src\widgets\menu\CheckItem.js</definedin>
	[ScriptName("CheckItem")]
	[ScriptNamespace("Ext.menu")]
	[Imported()]
	public partial class CheckItem : ext.menu.Item
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		/// <param name="config">Configuration options</param>
		public CheckItem(ext.menu.CheckItem_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		public CheckItem()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>
		/// All check items with the same group name will automatically be grouped into a single-select
		/// radio button group (defaults to &apos;&apos;)
		/// </summary>
		/// <definedin>src\widgets\menu\CheckItem.js</definedin>
		[ScriptName("group")]
		public string Group;
		
		/// <summary>The default CSS class to use for check items (defaults to &quot;x-menu-item x-menu-check-item&quot;)</summary>
		/// <definedin>src\widgets\menu\CheckItem.js</definedin>
		[ScriptName("itemCls")]
		public string ItemCls;
		
		/// <summary>The default CSS class to use for radio group check items (defaults to &quot;x-menu-group-item&quot;)</summary>
		/// <definedin>src\widgets\menu\CheckItem.js</definedin>
		[ScriptName("groupClass")]
		public string GroupClass;
		
		/// <summary>
		/// True to initialize this checkbox as checked (defaults to false). Note that
		/// if this checkbox is part of a radio group (group = true) only the first item in the group that is
		/// initialized with checked = true will be rendered as checked.
		/// </summary>
		/// <definedin>src\widgets\menu\CheckItem.js</definedin>
		[ScriptName("checked")]
		public bool Checked;
		
		/// <summary>Fires before the checked value is set, providing an opportunity to cancel if needed</summary>
		/// <definedin>src\widgets\menu\CheckItem.js</definedin>
		[ScriptName("beforecheckchangeEventName")]
		public const string BeforecheckchangeEventName = "beforecheckchange";
		
		/// <summary>Fires after the checked value has been set</summary>
		/// <definedin>src\widgets\menu\CheckItem.js</definedin>
		[ScriptName("checkchangeEventName")]
		public const string CheckchangeEventName = "checkchange";
		#endregion
		
		#region Methods
		/// <summary>
		/// A function that handles the checkchange event. The function is undefined by default, but if an implementation
		/// is provided, it will be called automatically when the checkchange event fires.
		/// </summary>
		/// <definedin>src\widgets\menu\CheckItem.js</definedin>
		/// <param name="this"></param>
		/// <param name="checked">The checked value that was set</param>
		[ScriptName("checkHandler")]
		public void CheckHandler(ext.menu.CheckItem @this, bool @checked)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Set the checked state of this item</summary>
		/// <definedin>src\widgets\menu\CheckItem.js</definedin>
		/// <param name="checked">The new checked value</param>
		/// <param name="suppressEvent">True to prevent the checkchange event from firing (defaults to false)</param>
		[ScriptName("setChecked")]
		public void SetChecked(bool @checked, bool suppressEvent)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Set the checked state of this item</summary>
		/// <definedin>src\widgets\menu\CheckItem.js</definedin>
		/// <param name="checked">The new checked value</param>
		[ScriptName("setChecked")]
		public void SetChecked(bool @checked)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
		
		#region Events
		/// <summary>Fires before the checked value is set, providing an opportunity to cancel if needed</summary>
		/// <definedin>src\widgets\menu\CheckItem.js</definedin>
		[ScriptName("beforecheckchange")]
		public event ext.auto.Delegate_ext_menu_CheckItem_And_System_Boolean Beforecheckchange;
		
		/// <summary>Fires after the checked value has been set</summary>
		/// <definedin>src\widgets\menu\CheckItem.js</definedin>
		[ScriptName("checkchange")]
		public event ext.auto.Delegate_ext_menu_CheckItem_And_System_Boolean Checkchange;
		#endregion
	}
}
